// 地图配置文件
export const MAP_CONFIG = {
  // 高德地图API密钥 - 优先使用环境变量
  AMAP_KEY: import.meta.env.VITE_AMAP_KEY || "3f5cbc94c82e4badf280d2df3af85567",

  // 默认城市
  DEFAULT_CITY: "南昌",

  // 默认中心点（南昌市中心）
  DEFAULT_CENTER: [115.858197, 28.682892],

  // 默认缩放级别
  DEFAULT_ZOOM: 15,

  // 搜索配置
  SEARCH_CONFIG: {
    offset: 20, // 返回结果数量
    page: 1,
    extensions: "base",
  },
};

// 获取高德地图API密钥 - 根据不同平台返回不同的密钥
export const getAmapKey = () => {
  // #ifdef MP-WEIXIN
  // 微信小程序环境使用指定的密钥
  return '215af0c59d107e56c394d45fe1ba4d04';
  // #endif
  
  // H5环境使用默认密钥
  return MAP_CONFIG.AMAP_KEY;
};

// 检查是否配置了API密钥
export const isAmapKeyConfigured = () => {
  return MAP_CONFIG.AMAP_KEY !== "YOUR_AMAP_KEY" && MAP_CONFIG.AMAP_KEY.length > 0;
};

// 获取可用的备用API密钥
export const getFallbackAmapKey = () => {
  // 备用密钥列表（可以根据需要添加多个备用密钥）
  const fallbackKeys = [
    "215af0c59d107e56c394d45fe1ba4d04", // 默认密钥
    "6f2a6d8e9b8b9f1d8e9c8d7a6b5c4d3e", // 备用密钥1
    "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", // 备用密钥2
  ];

  // 随机选择一个备用密钥
  return fallbackKeys[Math.floor(Math.random() * fallbackKeys.length)];
};

// 检查错误类型并提供解决方案
export const getAmapErrorMessage = (errorCode: string) => {
  const errorMessages: Record<string, string> = {
    USERKEY_PLAT_NOMATCH: "API密钥与平台不匹配，请检查密钥配置",
    INVALID_USER_KEY: "API密钥无效或不存在",
    USERKEY_PLAT_ERROR: "API密钥类型错误",
    INSUFFICIENT_PRIVILEGES: "API权限不足",
    SERVICE_NOT_EXIST: "请求的服务不存在",
    SERVICE_RESPONSE_ERROR: "服务响应错误",
    OVER_QUERY_LIMIT: "请求次数超出限制",
    INVALID_PARAMS: "请求参数无效",
  };

  return errorMessages[errorCode] || `地图服务错误: ${errorCode}`;
};
